import axios from 'axios';
// import { getIp, saveVisitorIp } from '../utils/axios';
import { saveVisitorIp } from '../utils/axios';
import Cookies from 'js-cookie';
const instance = axios.create({
    baseURL: 'http://127.0.0.1:8080', // 设置基础URL
    timeout: 5000, // 请求超时时间
});

//  添加请求拦截
instance.interceptors.request.use(
    // 设置请求头配置信息
    config => {
        config.headers.Accept = 'application/json, text/plain, text/html,*/*'
        //发送请求的时候查看本地是否带的有cookie-jwt

        if (Cookies.get('cookie-jwt') != null) {
            config.headers.set("jwt", Cookies.get('cookie-jwt'))
        }


        let flag = true
        if (flag) {
            flag = false

            //如果有人发请求先查看是否第一次发送
            if (Cookies.get("visitorIP") == null) {
                axios.get('https://ip.useragentinfo.com/json').then(
                    success => {
                        let val = success.data.ip + " " + success.data.country + '-' + success.data.province + '-' + success.data.city + '-' + success.data.isp
                        saveVisitorIp(val).then(
                            success => {
                                console.log("ip获取成功");

                                Cookies.set('visitorIP', val, { expires: 1 / 2 });//有效期半天

                                console.log(Cookies.get('visitorIP'));
                                
                                flag = true
                            }
                        ).catch( e=>{
                            console.log(val);
                            Cookies.set('visitorIP', val, { expires: 1 / 2 });//有效期半天
                            flag = true
                        })

                    }).catch(error => {
                        flag = true
                    })
                // Cookies.set('visitorIP', 'value', { expires: 1 / 2 });//半天后过期
            }


        }


        //


        return config
    },
    // 设置请求错误处理函数
    error => {
        // console.log("request error")
        return Promise.reject(error)
    }
)
// 添加响应拦截器
instance.interceptors.response.use(
    // 设置响应正确时的处理函数
    response => {
        // console.log("after success response")
        // console.log(response)
        return response
    },
    // 设置响应异常时的处理函数
    error => {
        // console.log("after fail response")
        // console.log(error)
        return Promise.reject(error)
    }
)


export {
    instance,
    // ipData
}
// export {
//     instance,
// }

// import {PI ,Person ,sum }  from './module.js'
// 类似 上面 这种 方式 导入
// --------在其他引入的地方使用
// import request from "../utils/request"
// export let login:any = (username: any,password:any) =>{
//     try{
//         return request.post(
//           '/login',
//           {
//             "username" : username,
//             "userPwd" : password,
//         },
//         )
//       }catch (e){
//         return  e
//       }
// }

/**
 * request.get('.api/data').then(
 * response =>{
 * 处理响应结果
 * }
 * ).catch(error => {
 * 处理错误结果
 * })
 * 
 */